package com.softeem.work.w7;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * dao:数据访问层
 *      1、放我们对于集合中数据的操作,增删改查
 *      2、学习mysql数据库,将代替当前的集合来进行存储,里面放sql语句
 *      3、再学习框架之后,将存储数据访问的接口,名字会做改变,叫mapper
 */
public class BankCardDao {
    //定义一个集合用来存储银行卡的信息
    ArrayList<BankCard> list = new ArrayList<BankCard>();

    Scanner sc = new Scanner(System.in);

    //取得所有卡累计余额 getTotalBalance()
    public double getTotalBalance(){
       //定义一个变量用来存储卡内的余额
        double totalBalance = 0;
        for(int i = 0; i < list.size(); i++){
            //totalBalance = totalBalance + list.get(i).getBalance();
            totalBalance += list.get(i).getBalance();
        }
        return totalBalance;
    }

    //取得当前最后的卡号 getCurrentCardNo() 因为这里想要得到最后一张卡的卡号,加一之后得到下一张卡号
    public int getCurrentCardNo(){
        //定义一个变量来存储我们从集合中找到的卡号内容
        // 1 2 3 4 5 6 7
        int cardNo = 0;
        if(list.get(list.size() - 1).getCardNo() != 0){
            return list.get(list.size() - 1).getCardNo();
        }else{
            return 0;
        }
    }
    //取得下一个卡号 getNextCurrentNo()
    public int getNextCurrentNo(){
        return getCurrentCardNo() + 1;
    }
    //存款 deposit()
    public void deposit(double money){
        //输入卡号
        System.out.println("请输入卡号");
        int cardNo = sc.nextInt();
        //输入用户名
        System.out.println("请输入用户名");
        String name = sc.next();
        for(int i = 0; i < list.size(); i++){
            if(cardNo == list.get(i).getCardNo() && name.equals(list.get(i).getName())){
                 list.get(i).setBalance(list.get(i).getBalance() + money);
            }
        }
    }
    //取款 withdraw()
    public void withdraw(double money){
        //输入卡号
        System.out.println("请输入卡号");
        int cardNo = sc.nextInt();
        //输入用户名
        System.out.println("请输入用户名");
        String name = sc.next();

        for(int i = 0; i < list.size(); i++){
            //cardNo == list.get(i).getCardNo():判断卡号对不对
            //name.equals(list.get(i).getName()):判断用户名对不对
            //list.get(i).getBalance() >= money:你的余额是否大于你要取出的钱
            if(cardNo == list.get(i).getCardNo()
                    && name.equals(list.get(i).getName())
                    && list.get(i).getBalance() >= money){
                list.get(i).setBalance(list.get(i).getBalance() - money);
            }else{
                System.out.println("余额不足");
            }
        }
    }
}
